<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /*
            回顾一下垃圾回收机制:

            举个例子, 你在声明了一个对象并把地址值给了obj，而后面对于obj赋值为null，那么js会认为以后你就再也没有办法获取到一开始声明的那个对象了，垃圾回收机制就会把这个对象在内存中占用的资源回收掉也就是删掉。
            let obj = {
                name:'mikaisa'
            };
            obj = null;

            但是如果代码里加一句呢？那么这时候就不会被回收了了，因为obj是null了，但是通过obj1还是可以访问到这个对象，那么垃圾回收机制就不会回收这个对象了
            let obj = {
                name: 'mikaisa'
            };
            let obj1 = obj;
            obj = null;
            
            其实垃圾回收机制的思路也很简单，以我们开头声明的对象为例，你赋值给obj，那么垃圾回收机制就会认为访问这个对象的方式多了一种，后来又赋值给obj1，那么就又加一，就是两种方式，你obj = null，那就是把访问对象的方式减一，所以垃圾回收机制的思路就是，只要访问这个数据的方式为0种，也就是没有办法再去访问它了，那它就会被回收。
        */

        // 
    </script>
</body>

</html>